
//------------------------------------------------------------------------------
// Colors
//------------------------------------------------------------------------------

$o-base-color-palette: map-merge($o-base-color-palette, (
    'body': $o-portal-default-body-bg,
    'menu': 1, // o_cc1
    'menu-border-color': null, // Default to classes used on the template
    'header-boxed': '200',
    'footer': 5, // o_cc5
    'copyright': 'black-15',
));

// By default, all user color palette values are null. Each null value is
// automatically replaced with corresponsing color of chosen color palette.
$o-user-color-palette: () !default;

// By default, all user theme color palette values are null. Each null value
// is automatically replaced with corresponsing color of chosen theme color
// palette.
$o-user-theme-color-palette: () !default;

$o-social-colors: (
    'facebook': #3B5999,
    'twitter': #55ACEE,
    'linkedin': #0077B5,
    'google-plus': #DD4B39,
    'youtube': #ff0000,
    'github': #1a1e22,
    'instagram': #cf2872,
    'whatsapp': #25d366,
    'pinterest': #C8232C,
);

$o-theme-figcaption-opacity: 0.6;

$o-theme-generic-color-palettes: (
    (
        'o-color-1': #984c46,
        'o-color-2': #23323b,
        'o-color-3': #eceae4,
        'o-color-4': #FFFFFF,
        'o-color-5': #16121f,

        'menu': 3,
        'footer': 3,
    ),
    (
        'o-color-1': #B99932,
        'o-color-2': #DED1C1,
        'o-color-3': #F5F5F5,
        'o-color-4': #FFFFFF,
        'o-color-5': #373737,

        'menu': 5,
        'copyright': 4,
    ),
    (
        'o-color-1': #f8882f,
        'o-color-2': #6a7c8f,
        'o-color-3': #fdf8ef,
        'o-color-4': #FFFFFF,
        'o-color-5': #212c39,
    ),
    (
        'o-color-1': #6E7993,
        'o-color-2': #96848C,
        'o-color-3': #8F9AA2,
        'o-color-4': #D5D5D5,
        'o-color-5': #313347,

        'menu': 5,
    ),
    (
        'o-color-1': #F7CF41,
        'o-color-2': #1A2930,
        'o-color-3': #989898,
        'o-color-4': #FFFFFF,
        'o-color-5': #0B1612,

        'menu': 3,
        'footer': 3,
    ),
    (
        'o-color-1': #45859A,
        'o-color-2': #B57D4D,
        'o-color-3': #F5F5F5,
        'o-color-4': #FFFFFF,
        'o-color-5': #10273C,

        'menu': 2,
        'footer': 2,
        'copyright': 5,
    ),
    (
        'o-color-1': #1a547a,
        'o-color-2': #ddc76a,
        'o-color-3': #D6E6F1,
        'o-color-4': #FFFFFF,
        'o-color-5': #2b3442,

        'o-cc5-link': 'o-color-4',
        'o-cc5-text': #9b9ba0,

        'menu': 5,
        'footer': 5,
        'copyright': 3,
    ),
    (
        'o-color-1': #763240,
        'o-color-2': #C19F7F,
        'o-color-3': #FFFFFF,
        'o-color-4': #EAEAEA,
        'o-color-5': #2F2F2F,

        'o-cc4-headings': 'o-color-3',
        'o-cc4-link': 'o-color-3',
        'o-cc4-text': rgba(#fff, .8),

        'o-cc5-headings': 'o-color-3',
        'o-cc5-link': 'o-color-3',
        'o-cc5-text': rgba(#fff, .8),

        'footer': 1,
        'copyright': 4,
    ),
    (
        'o-color-1': #4DC5C1,
        'o-color-2': #EC576B,
        'o-color-3': #E5E337,
        'o-color-4': #FFFFFF,
        'o-color-5': #000000,

        'menu': 5,
    ),
    (
        'o-color-1': #b56355,
        'o-color-2': #6ba17a,
        'o-color-3': #ebe6ea,
        'o-color-4': #FFFFFF,
        'o-color-5': #343733,

        'footer': 2,
    ),
    (
        'o-color-1': #01ACAB,
        'o-color-2': #FEDC3D,
        'o-color-3': #FAE8E0,
        'o-color-4': #FFFFFF,
        'o-color-5': #000000,

        'footer': 1,
    ),
    (
        'o-color-1': #926190,
        'o-color-2': #F3E0CD,
        'o-color-3': #F9EFE9,
        'o-color-4': #FFFFFF,
        'o-color-5': #291528,

        'o-cc4-headings': 'o-color-4',
        'o-cc4-link': 'o-color-4',
        'o-cc4-text': rgba(#fff, .8),

        'o-cc5-headings': 'o-color-4',
        'o-cc5-link': 'o-color-4',
        'o-cc5-text': rgba(#fff, .6),
    ),
    (
        'o-color-1': #478FA2,
        'o-color-2': #CECECE,
        'o-color-3': #E8E9E9,
        'o-color-4': #FFFFFF,
        'o-color-5': #173F54,

        'footer': 1,
        'copyright': 1,
    ),
    (
        'o-color-1': #3CC37C,
        'o-color-2': #E9C893,
        'o-color-3': #F5F5F5,
        'o-color-4': #FFFFFF,
        'o-color-5': #1F3A2A,

        'footer': 1,
        'copyright': 5,
    ),
    (
        'o-color-1': #01524B,
        'o-color-2': #1993A3,
        'o-color-3': #dddde6,
        'o-color-4': #FFFFFF,
        'o-color-5': #011D1B,

        'o-cc4-btn-primary': 'o-color-4',
        'o-cc4-link': 'o-color-4',
        'o-cc4-text': rgba(#fff, .8),

        'o-cc5-btn-primary': 'o-color-4',
        'o-cc5-link': 'o-color-4',
        'o-cc5-text': rgba(#fff, .6),

        'footer': 2,
        'copyright': 5,
    ),
    (
        'o-color-1': #464D77,
        'o-color-2': #36827f,
        'o-color-3': #f2f0ec,
        'o-color-4': #FFFFFF,
        'o-color-5': #22263c,

        'o-cc4-btn-primary': 'o-color-4',
        'o-cc4-link': 'o-color-4',
        'o-cc4-text': rgba(#fff, .8),

        'o-cc5-btn-primary': 'o-color-4',
        'o-cc5-btn-secondary': #d6d4d0,
        'o-cc5-link': 'o-color-4',
        'o-cc5-text': rgba(#fff, .6),

        'menu': 2,
        'footer': 2,
        'copyright': 5,
    ),
    (
        'o-color-1': #4717f6,
        'o-color-2': #A43ACB,
        'o-color-3': #FAFAFA,
        'o-color-4': #FFFFFF,
        'o-color-5': #0F0A19,

        'menu': 5,
        'footer': 5,
    ),
);

//------------------------------------------------------------------------------
// Website customizations
//------------------------------------------------------------------------------

$o-base-website-values-palette: (
    'font-size-base': 1rem, // Need a set value as the value is used in bootstrap_overridden files
    'google-fonts': null,

    'body-image': null,
    'body-image-type': 'image', // 'image' or 'pattern'

    'layout': 'full', // 'full' / 'boxed'
    'color-palettes-number': null, // Default to the individual variables for each color palette type

    'btn-primary-outline': false,
    'btn-secondary-outline': false,
    'link-underline': 'hover', // 'never' / 'hover' / 'always'
    'btn-ripple': false,

    'btn-padding-y': null, // Default to BS
    'btn-padding-x': null, // Default to BS
    'btn-font-size': null, // Default to BS
    'btn-padding-y-sm': null, // Default to portal value
    'btn-padding-x-sm': null, // Default to portal value
    'btn-font-size-sm': null, // Default to BS
    'btn-padding-y-lg': null, // Default to BS
    'btn-padding-x-lg': null, // Default to BS
    'btn-font-size-lg': null, // Default to BS
    'btn-border-width': null, // Default to BS
    'btn-border-radius': null, // Default to BS
    'btn-border-radius-sm': null, // Default to BS
    'btn-border-radius-lg': null, // Default to BS

    'input-padding-y': null, // Default to BS
    'input-padding-x': null, // Default to BS
    'input-font-size': null, // Default to BS
    'input-padding-y-sm': null, // Default to BS
    'input-padding-x-sm': null, // Default to BS
    'input-font-size-sm': null, // Default to BS
    'input-padding-y-lg': null, // Default to BS
    'input-padding-x-lg': null, // Default to BS
    'input-font-size-lg': null, // Default to BS
    'input-border-width': null, // Default to BS
    'input-border-radius': null, // Default to BS
    'input-border-radius-sm': null, // Default to BS
    'input-border-radius-lg': null, // Default to BS

    // A key from the $o-theme-font-configs map (null = default to the first key)
    'font': null,
    'headings-font': null,
    'navbar-font': null,
    'buttons-font': null,

    'header-template': 'default', // 'default' / 'hamburger' / 'vertical' / 'sidebar'
    'header-font-size': null, // Default to BS (normal font-size)
    'header-links-style': 'default', // 'default' / 'fill' / 'outline' / 'pills' / 'block' / 'border-bottom'
    'logo-height': null, // Default to navbar height (see portal)
    'hamburger-type': 'default', // 'default' / 'off-canvas'
    'hamburger-position': 'left', // 'left' / 'center' / 'right'
    'menu-border-width': null, // Default to classes used on the template
    'menu-border-style': solid, // Default to classes used on the template
    'menu-border-radius': null, // Default to classes used on the template
    'menu-box-shadow': null, // Default to classes used on the template
    'sidebar-width': 18.75rem, // 300px

    'footer-template': 'default',
    'footer-effect': null, // null / 'slideout_slide_hover' / 'slideout_shadow'
    'footer-scrolltop': false,
);
$o-font-aliases-to-keys: (
    'base': 'font',
    'headings': 'headings-font',
    'navbar': 'navbar-font',
    'buttons': 'buttons-font',
);
$o-website-values-palettes: (
    (
        'headings-font': 'Source Sans Pro',
        'navbar-font': 'Source Sans Pro',
        'buttons-font': 'Source Sans Pro',
    ),
) !default;
$o-website-values-palette-number: 1 !default;

// By default, all user website values are null. Each null value is
// automatically replaced with corresponsing value of chosen values palette.
$o-user-website-values: () !default;

//------------------------------------------------------------------------------
// Fonts
//------------------------------------------------------------------------------

// Those are BS values, except BS hardcodes them inside the $hx-font-size
// variables directly and don't make them customizable.
$o-theme-h1-font-size-multiplier: 2.5 !default;
$o-theme-h2-font-size-multiplier: 2 !default;
$o-theme-h3-font-size-multiplier: 1.75 !default;
$o-theme-h4-font-size-multiplier: 1.5 !default;
$o-theme-h5-font-size-multiplier: 1.25 !default;
$o-theme-h6-font-size-multiplier: 1 !default;

// Map:
// <font-name>: (
//     'family': <css font family list>,
//     'url': <related part of google fonts URL>,
//     'properties' (optional): (
//         <font-alias>: (
//             <website-value-key>: <value>,
//             ...,
//         ),
//         ...,
//     )
// )
$o-theme-font-configs: (
    'Roboto': (
        'family': ('Roboto', sans-serif),
        'url': 'Roboto:300,300i,400,400i,700,700i',
    ),
    'Open Sans': (
        'family': ('Open Sans', sans-serif),
        'url': 'Open+Sans:300,300i,400,400i,700,700i',
    ),
    'Source Sans Pro': (
        'family': ('Source Sans Pro', sans-serif),
        'url': 'Source+Sans+Pro:300,300i,400,400i,700,700i',
    ),
    'Raleway': (
        'family': ('Raleway', sans-serif),
        'url': 'Raleway:300,300i,400,400i,700,700i',
    ),
    'Noto Serif': (
        'family': ('Noto Serif', serif),
        'url': 'Noto+Serif:300,300i,400,400i,700,700i',
    ),
    'Arvo': (
        'family': ('Arvo', Times, serif),
        'url': 'Arvo:300,300i,400,400i,700,700i',
    ),
) !default;

//------------------------------------------------------------------------------
// Mixins
//------------------------------------------------------------------------------

@mixin o-ribbon-right() {
    @include o-position-absolute($top: 0, $right: 0);
    padding: 0.5rem $ribbon-padding;
    // 0.708 is 1 - cos(45deg)
    // Transforms are applied right-to-left
    // Cannot use matrix because of the use of % values.
    transform: translateX(calc(-0.708 * (100% - #{2 * $ribbon-padding}))) rotate(45deg) translateX(calc(100% - #{$ribbon-padding}));
    transform-origin: top right;
};

@mixin o-ribbon-left() {
    @include o-position-absolute($top: 0, $left: 0);
    padding: 0.5rem $ribbon-padding;
    transform: translateX(calc(0.708 * (100% - #{2 * $ribbon-padding}) - 100%)) rotate(-45deg) translateX($ribbon-padding);
    transform-origin: top right;
};

@mixin o-tag-right() {
    @include o-position-absolute($top: 0, $right: 0);
    padding: 0.25rem 1rem;
};

@mixin o-tag-left() {
    @include o-position-absolute($top: 0, $left: 0);
    padding: 0.25rem 1rem;
};
